package com.neouton.crm.generalReceiptRecord.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.neouton.common.entity.BaseEntityVO;
import com.neouton.crm.approval.entity.ApprovalVO;
import com.neouton.crm.entity.SysUserEntity;
import com.neouton.crm.pm.entity.PurchaseOrderVO;
import com.neouton.crm.sales.entity.SalesFileRelationVO;
import com.neouton.crm.supplier.entity.SupplierVO;
import com.neouton.crm.transpondEmail.entity.TranspondEmailVO;
import lombok.Data;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

/**
 * 收票记录
 * @TableName receipt_records
 */
@TableName(value ="receipt_records")
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
public class GeneralReceiptRecord extends BaseEntityVO implements Serializable {
    /**
     * 收票记录id
     */
    @TableId
    private Integer receiptRecordsId;


    /**
     * 供应商(客户)id
     */
    private SupplierVO supplier;
    /**
     * 客户名称
     */
    private String supplierName;
    /**
     * 供应商信息
     */
    private Integer supplierId;

    private String receiptName;

    /**
     * 采购单id
     */
    private Integer purchaseOrderId;

    /**
     * 售票日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date receiptDate;
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Timestamp receiptDateStart;
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Timestamp receiptDateEnd;
    private String receiptDateTime;

    /**
     * 期次
     */
    private String planPeriod;
    private List<Integer> planPeriodList;
    private String planPeriodName;

    /**
     * 发票内容
     */
    private String ticketContent;

    /**
     * 票据类型
     */
    private Integer ticketType;
    private List<Integer> ticketTypeList;
    private String ticketTypeName;

    /**
     * 采购名称
     */
    private String purchaseTopic;
    /**
     * 发票号码
     */
    private String ticketNumber;

    /**
     * 发票金额
     */
    private String tickerMoney;
    private String tickerMoneySmall;
    private String tickerMoneyLarge;

    /**
     * 是否进项税 0.计算 1.不计算
     */
    private Integer inputTax;
    private List<Integer> inputTaxList;
    private String inputTaxName;

    /**
     * 进项税金
     */
    private float taxMoney;

    /**
     * 税率
     */
    private String rate;

    /**
     * 经手人
     */
    private SysUserEntity handlers;

    private SysUserEntity owner;
    private List<Integer> handlersList;
    private String handlersName;

    /**
     * 是否付款 0.已付  1.未付
     */
//    private Integer payIsNot;
    private List<Integer> payIsNotList;
    private String payIsNotName;

    /**
     * 备注
     */
    private String remark;




    /**
     * 采购单号
     */
    private String purchaseNo;


    /**
     * 审批主表ID
     */
    private Integer approvalId;
    private List<Integer> approvalStatusList;
    private String approvalStatusName;


    private PurchaseOrderVO purchaseOrder;
    /**
     * 关联审批记录
     */
    private ApprovalVO approval;

    private List<SalesFileRelationVO> salesFileRelations;

    /**
     * 前端排序标识
     */
    private String orderByColum;

    private String orderByProp;

    private String order;

    private String purchaseCategoriesStr;

    private List<GeneralReceiptTable> receiptTables;

    private String projectManageTheme;


    /**
     * 申请原因
     */
    private String askReason;

    /**
     * 审批意见
     */
    private String appReason;

    private String tickerMoneyPage;

    private String paramType;

    private List<Integer> approvalIds;

    private Integer dateOption;

    /**
     * 转发人
     */
    private String sender;
    /**
     * 转发人集合
     */
    private List<SysUserEntity> transpondUsers;

    private List<TranspondEmailVO> transpondEmailVOs;

    private Integer handlerId;

    private Integer payRecordsId;

    private String payRecordName;
}